.base {
  margin: 0;
  letter-spacing: var(--cui-letter-spacing);
}

/* Sizes */

.l {
  font-size: var(--cui-body-l-font-size);
  line-height: var(--cui-body-l-line-height);
}

.m {
  font-size: var(--cui-body-m-font-size);
  line-height: var(--cui-body-m-line-height);
}

.s {
  font-size: var(--cui-body-s-font-size);
  line-height: var(--cui-body-s-line-height);
}

/* Weights */

.regular {
  font-weight: var(--cui-font-weight-regular);
}

.semibold {
  font-weight: var(--cui-font-weight-semibold);
}

.bold {
  font-weight: var(--cui-font-weight-bold);
}

/* Decorations & styles */

.italic {
  font-style: italic;
}

.strikethrough {
  text-decoration: line-through;
}

/* Colors */

.normal {
  color: var(--cui-fg-normal);
}

.subtle {
  color: var(--cui-fg-subtle);
}

.placeholder {
  color: var(--cui-fg-placeholder);
}

.on-strong {
  color: var(--cui-fg-on-strong);
}

.on-strong-subtle {
  color: var(--cui-fg-on-strong-subtle);
}

.accent {
  color: var(--cui-fg-accent);
}

.success {
  color: var(--cui-fg-success);
}

.warning {
  color: var(--cui-fg-warning);
}

.danger {
  color: var(--cui-fg-danger);
}

.promo {
  color: var(--cui-fg-promo);
}

/* Variants */

.highlight,
.base strong {
  font-weight: var(--cui-font-weight-semibold);
}

.quote,
blockquote.base,
.base blockquote {
  padding-left: var(--cui-spacings-kilo);
  font-style: italic;
  border-left: var(--cui-border-width-mega) solid var(--cui-border-accent);
}

.confirm {
  color: var(--cui-fg-success);
}

.alert {
  color: var(--cui-fg-danger);
}
